// 接口的声明和使用
// 1.找到页面需要对应哪个借口
// 2.找后端 或者看接口文档，如果没有接口文档自己mock（模拟接口）
// 3.看接口，URL（接口地址）、接口请求方式、接口携带的参数、接口返回的数据
// 4.在API中封装接口 返回一个request方法 在方法中匹配接口地址）、接口请求方式、接口携带的参数（有什么配什么，没有可以省略不写）
// 5.在合适的位置调用接口

// 浏览器请求的查看
// 1.重点关注最左侧的红色小按钮，（录制）如果发现请求之后一个都没有 说明录制没开
// 2.重点关注小漏斗中的筛选里面是否有过滤条件 如果有将他清除掉
// 3.重点关注 no throttling 将网络关掉

// 拿到接口之后怎么查看
// 点击接口就可以进入接口详情
// 重点关注标头 headers 载荷 payload 预览 preview
// 1.如果接口是404 说明接口没有找到 重点看一下headers中的Request URL和文档中的是否一致
// 2.如果返回状态码不是404也不是500多的大概率是接口传参传错了，重点看载荷中的传参和预览中的错误返回 与接口文档对照
// 3.接口返回状态码是500多的 需要检查一下【标头中的Request Method】请求的方法是否和接口文档一致，后端服务如果真的挂了，需要及时和后端说
// 4.如果接口返回状态码是401 说明后端需要token没有传成或者过期

// 存放接口
import request from '@/utils/request.js'
import store from '@/store'

export * from './User' // 用户相关

// 封装接口请求方法
export const allChannelListAPI = () => {
  return request({
    url: '/v1_0/channels'
  })
}

// 登录接口
export const loginAPI = ({ mobile, code }) => {
  return request({
    url: '/v1_0/authorizations',
    method: 'POST',
    data: {
      mobile,
      code
    }
  })
}

export const userChannelAPI = () => {
  return request({
    url: '/v1_0/user/channels',
    headers: {
      Authorization: 'Bearer' + store.state.token
    }
  })
}

// 获取文章列表
export const articlesListAPI = ({ channelid, timestamp }) => {
  return request({
    url: '/v1_0/articles',
    method: 'GET',
    params: {
      channel_id: channelid,
      timestamp: timestamp || (new Date()).getDate()
    }
  })
}

// 对文章不感兴趣接口
export const articleDislikeAPI = ({ target }) => {
  return request({
    url: '/v1_0/article/dislikes',
    method: 'POST',
    data: {
      target
    }
    /*  headers: {
      Authorization: 'Bearer ' + store.state.token
    } */
  })
}

// 文章举报
export const articleReportsAPI = ({ target, type, remark }) => {
  return request({
    url: '/v1_0/article/reports',
    method: 'POST',
    data: {
      target,
      type,
      remark
    }
    /* headers: {
      Authorization: 'Bearer ' + store.state.token
    } */
  })
}

// 更新频道
export const updateChannelAPI = ({ channels }) => {
  return request({
    url: '/v1_0/user/channels',
    method: 'PUT',
    data: {
      channels
    }
  })
}

// 获取联想建议
export const suggestListAPI = ({ q }) => {
  return request({
    url: '/v1_0/suggestion',
    params: {
      q
    }
  })
}

// 获取搜索结果
export const searchResultListAPI = ({ q, page = 1 }) => {
  return request({
    url: '/v1_0/search',
    params: {
      q,
      page
    }
  })
}

// 文章详情
export const articleDetailAPI = ({ id }) => {
  return request({
    url: `/v1_0/articles/${id}`
  })
}

// 关注作者
export const followedUserAPI = ({ target }) => {
  return request({
    url: '/v1_0/user/followings',
    method: 'POST',
    data: {
      target: target
    }
  })
}

// 取消关注作者
export const unFollowedUserAPI = ({ uid }) => {
  return request({
    url: `/v1_0/user/followings/${uid}`,
    method: 'DELETE'
  })
}

// 文章 - 点赞
export const articleLikeAPI = ({ target }) => {
  return request({
    url: '/v1_0/article/likings',
    method: 'POST',
    data: {
      target: target
    }
  })
}

// 文章 - 取消点赞
export const articleDisLikeAPI = ({ artId }) => {
  return request({
    url: `/v1_0/article/likings/${artId}`,
    method: 'DELETE'
  })
}

// 获取评论列表
export const commentListAPI = ({
  artId, offset = null, limit
}) => {
  return request({
    url: '/v1_0/comments',
    params: {
      type: 'a',
      source: artId,
      offset,
      limit
    }
  })
}

// 对评论或评论回复点赞
export const commentLikingAPI = ({ target }) => {
  return request({
    url: '/v1_0/comment/likings',
    method: 'POST',
    data: {
      target
    }
  })
}

// 取消对评论或评论回复点赞
export const commentDisLikingAPI = ({ comId }) => {
  return request({
    url: `/v1_0/comment/likings/${comId}`,
    method: 'DELETE'
  })
}

// 评论 - 发布
export const sendCommentAPI = ({ artId, content }) => {
  return request({
    url: '/v1_0/comments',
    method: 'POST',
    data: {
      target: artId,
      content: content
    }
  })
}

// // 用户 - 基本资料
// export const userInfoAPI = () => {
//   return request({
//     url: '/v1_0/user'
//   })
// }

// // 用户- 个人资料(就为了获取生日)
// export const userProfileAPI = () => {
//   return request({
//     url: '/v1_0/user/profile'
//   })
// }

// // 编辑用户照片资料（头像、身份证照片）
// export const updatePhotoAPI = (formObj) => {
//   return request({
//     url: '/v1_0/user/photo',
//     method: 'PATCH',
//     // 通过数据结构 构造对象的传参方式key： value 叫做application/json的content-type
//     // 通过将文件对象直接传入的方式传参 叫做multipart/form-data传参
//     // 当浏览器检测到传入的参数是formdata的格式时，会自动将content-type转换为multipart/form-data
//     data: formObj
//   })
// }

// // 用户 - 更新资料
// export const updateProfileAPI = ({ birthday, userName }) => {
//   return request({
//     url: '/v1_0/user/profile',
//     method: 'PATCH',
//     data: {
//       birthday: birthday,
//       name: userName
//     }
//   })
// }

// // 用户 - 更新token
// export const refreshTokenAPI = () => request({
//   url: '/v1_0/authorizations',
//   method: 'PUT',
//   headers: {
//     Authorization: `Bearer ${store.state.refresh_token}`
//   }
// })
